/**
 * AI 引擎
 */
export interface Profile {}

/**
 * 企微分组（一个企微可以在多个组里）
 */
export interface QywxGroup {
  id: number // 分组 ID
  name: string // 分组名称
  accounts: string[] // 此分组下的 wxid 列表
  profile_id: number // 分组绑定的引擎 ID
  in_work_time: boolean // 此分组当前是否处于工作时间
  work_time: QywxGroupWorkTime[] // 分组工作时间
  config: QywxGroupConfig
}
export interface QywxGroupWorkTime {
  work_day: number[]
  work_time: string[]
}
export interface QywxGroupConfig {
  run_mode: RunMode
  range: Scope[] | null
  random_delay: number // 随机延迟（0~10s）
}
export enum RunMode {
  手动 = 0,
  半自动 = 1,
  全自动 = 2,
}
export enum Scope {
  员工 = 0,
  客户 = 1,
  群 = 2,
}

/**
 * 企业微信的机器人配置（整理后仅保留需要的信息）
 * 当前没有工作中的分组的企微，没有此值
 */
export interface QywxConfig {
  profileId: number
  runMode: RunMode
  scope: Scope[]
}

/**
 * 传给后端的聊天记录
 */
export interface HistoryItem {
  isReceive: boolean // true 代表是“我方”收到的消息
  text: string
}

// ---------------------------------------------------------

/**
 * AI Chat 接口的返回值
 */
export interface AIChatSuccess<T = void> {
  success: true
  data: T
}
export interface AIChatFailed {
  success: false
  error: {
    message: string
    code?: string
  }
}
export type AIChatMaySuccess<T> = AIChatSuccess<T> | AIChatFailed
function aiChatSuccess(): AIChatSuccess
function aiChatSuccess<T>(data: T): AIChatSuccess<T>
function aiChatSuccess<T>(data?: T) {
  return { success: true, data }
}
export { aiChatSuccess }
export function aiChatFailed(message: string, code?: string): AIChatFailed {
  return { success: false, error: { message, code } }
}
